
#include <assert.h>

#include <algorithm>
#include <stack>
#include <queue>
#include <array>
#include <cmath>
#include <iostream>
#include <iterator>
#include <list>
#include <map>
#include <set>
#include <string>
#include <utility>
#include <vector>

class Solution {
public:
    std::string removeDuplicates(std::string s) {
        std::stack<char> st;

        for (char c : s) {
            if (st.empty() || st.top() != c)
                st.push(c);
            else {
                st.pop();
            }
        }

        std::string t(st.size(), ' ');

        for (int i = st.size()-1; i>=0; --i) {
            t[i] = st.top();
            st.pop();
        }

        return t;
    }
};
